package cc.linker.steplink.crm.merchanth5.pojo;


import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;

/**
 * @author huhj
 */
@Getter
@Setter
public class VipCustomerLogPo {
    /**
     * `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id'
     */
    private Long id;

    /**
     * `CUSTOMER_ID` varchar(50) NOT NULL COMMENT '用户ID'
     */
    private String customerId;

    private String customerName;

    private String customerPhone;

    /**
     * `ORG_ID` varchar(36) NOT NULL COMMENT '机构ID'
     */
    private String orgId;

    /**
     * `VIP_ID` bigint(20) NOT NULL COMMENT '会员卡ID',
     */
    private Long vipId;

    /**
     * `VIP_NAME` varchar(10) DEFAULT '' COMMENT '名称'
     */
    private String vipName;

    /**
     * `VIP_IMAGE` varchar(500) DEFAULT '' COMMENT '图标'
     */
    private String vipImage;

    /**
     * `VIP_BG_IMAGE` varchar(500) DEFAULT '' COMMENT '背景图'
     */
    private String vipBgImage;

    /**
     * `VIP_TYPE` int(1) DEFAULT '1' COMMENT '领取类型：1.直接领取2.付费购买3.购买商品'
     */
    private Integer vipType;

    /**
     * `VIP_TYPE_DESC` varchar(255) DEFAULT '' COMMENT
     * '类型-存入文本：展示领取方式，以用户领取时为准\r\n
     * （1）类型为直接领取：展示直接领取\r\n
     * （2）类型为付费购买：展示“付费购买+周期+金额”\r\n
     * （3）类型为购买商品：展示“购买商品+商品名称”'
     */
    private String vipTypeDesc;

    /**
     * `VIP_EFFECTIVE_TYPE` int(1) DEFAULT '1' COMMENT '有效类型1.永久2.自定义'
     */
    private Integer vipEffectiveType;

    /**
     * `VIP_EFFECTIVE_DAYS` int(4) DEFAULT '0' COMMENT '有效天数'
     */
    private Integer vipEffectiveDays;

    /**
     * `VIP_EFFECTIVE_MONTH` int(2) DEFAULT '0' COMMENT '有效天月数'
     */
    private Integer vipEffectiveMonth;

    /**
     * `VIP_TIP` varchar(500) DEFAULT '' COMMENT '使用须知'
     */
    private String vipTip;

    /**
     * `VIP_BENEFIT` varchar(20) DEFAULT '' COMMENT '权益1.消费折扣 2.开通联盟商家3.开通加盟代理（逗号隔开）'
     */
    private String vipBenefit;

    /**
     * `EXPIRE_TIME` datetime DEFAULT NULL COMMENT '到期时间'
     */
    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date expireTime;

    /**
     * `STATUS` int(1) DEFAULT '1' COMMENT '
     * 状态：分为已退卡、使用中\r\n
     * 1：使用中：用户成功开通了会员且处于有效期内\r\n
     * 2：已退卡：用户被后台管理员执行了退卡后状态切换为“已退卡”'
     */
    private Integer status;

    /**
     * `CREATE_TIME` datetime DEFAULT NULL COMMENT '开通时间'
     */
    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * `AMOUNT` int(11) DEFAULT '0' COMMENT 'type=2时购买会员卡的费用（单位：分）'
     */
    private Integer amount;

    private String amountStr;

    /**
     * `ORDER_SN` varchar(50) DEFAULT '' COMMENT '订单号（V开头）'
     */
    private String orderSn;

    /**
     * PAY_TYPE int(1) DEFAULT 1 COMMENT '1:微信，2：通联'
     */
    private Integer payType;

    /**
     * `PAYMENT_TIME` datetime DEFAULT NULL COMMENT '付款时间'
     */
    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date paymentTime;

    /**
     * `PAYMENT_STATE` int(1) DEFAULT '0' COMMENT '付款状态:0:未付款;
1:已付款'
     */
    private Integer paymentState;

    /**
     * `TRADE_SN` varchar(50) DEFAULT NULL COMMENT '交易流水号'
     */
    private String tradeSn;

    /**
     * `REFUND_STATE` int(1) DEFAULT '0' COMMENT '0:未退款，1:已退款'
     */
    private Integer refundState;

    /**
     * `REFUND_TIME` datetime DEFAULT NULL COMMENT '退款时间'
     */
    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refundTime;

    //权益卡编号
    private String cardId;

    //开通时用的积分
    private Integer integral = 0;

    //积分商城vipId
    private Long integralVipId = 0L;

    //积分商城integralOptionId
    private Long integralOptionId = 0L;

    //分享用户ID
    private String shareCustomerId;

    private String exchangeId;

    private String exchangeCode;

}
